iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0

Service 是可以在後台運行而且不提供介面的元件,常用在執行長時間運行的操作,一旦啟動 Service 的話將會持續運行一段時間,就算使用者切換到不同應用程式也不會影響到 Service 的運行,常看到的應用像是在背景播放音樂、上傳下載檔案等。

Service 的生命週期

https://ithelp.ithome.com.tw/upload/images/20220912/20151953QuHZoIVc4J.png
透過官方提供的圖我們可以發現 Service 有兩種啟動方式,分別為:

startService()

當我們在應用程式裡面,透過 startService() 啟動了 Service,那 Service 就會進入 Started 狀態,則可以在後台持續執行,就算是啟動這個 Service 的應用程式被銷毀了也不影響,直到呼叫了 stopService() 或內部呼叫 stopSelf() 才會停止。

bindService()

如果 Activity 透過 bindService() 綁定 Service 的話,則會進入 Bound 狀態,讓 Activity 綁定 Service,假設今天 Activity 銷毀的話,Service 也會一起終止。

面試可能會遇到的相關問題

  • Service 的 Lifecycle?
  • Service 是否能執⾏耗時的操作?
  • Service 與 IntentService 的差別?

參考資料

Services overview - Android Developers


上一篇
第五天:Android 四大元件之 Activity(三)
下一篇
第七天:Android 四大元件之 BroadcastReceiver
系列文
轉職成 Android Developer 的最後一哩路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言